package com.gk.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.eight.pojo.TbUser;
import com.eight.vo.ComResult;
import com.eight.vo.TbUserVo;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author: GK
 * @date: 2023/2/27 10:29
 * @version:No1.0
 */
public interface TbUserService extends IService<TbUser>{
    /**
     * 分页查询
     */
    ComResult selectAll(TbUserVo tbUserVo, Integer pageIndex,Integer pageSize);

    /**
     * 根据账号和密码进行查询用户信息
     * @param username 账号
     * @param password 密码
     * @return 用户信息
     */
    TbUser selectOne(String username, String password);

    /**
     * 根据用户id删除用户
     * @param id id号
     * @return 响应前端数据
     */
    ComResult deleteFindId(Integer id);

    /**
     * 修改用户信息
     * @param tbUser 修改的信息
     * @return 响应前端
     */
    ComResult updateUser(TbUser tbUser);

    /**
     * 添加用户信息
     * @param tbUser 添加的用户信息
     * @return 响应前端
     */
    ComResult insertUser(TbUser tbUser);

    /**
     * 根据id查询用户信息
     * @param id 查询条件
     * @return 响应前端
     */
    ComResult selectFindId(Integer id);

    /**
     * 查询所有用户
     * @return 查询到的用户
     */
    List<TbUser> selectUserAll();

    /**
     * 根据用户账号查询用户信息
     * @param username 用户账号
     * @return 查询到的用户信息
     */
    TbUser selectUserFindUsername(String username);


    Map<String,Object> getUserList();

    /**
     * 根据用户和密码进行添加用户信息
     * @param username 账号
     * @param password 密码
     * @return 响应前端
     */
    ComResult insertOneUser(String username, String password);

    /**
     * 判断手机号是否存在
     * @param username 手机号既是账号
     * @return 响应前端
     */
    ComResult selectUsername(String username);

    /**
     * 根据账号和密码修改用户密码
     * @param username 账号
     * @param password 密码
     * @return 响应前端数据
     */
    ComResult updateOneUser(String username, String password);

    /**
     * 根据账号查询账户余额
     * @param username 账号
     * @return 响应前端
     */
    TbUser selectTbUser(String username);

    /**
     * 根据账户查询用余额
     * @param username 账号
     * @return 响应前端
     */
    ComResult selectMoney(String username);

    /**
     * 添加充值金额
     * @param amount 充值费用
     * @return 响应前端
     */
    ComResult addMoney(Integer amount,String name,Integer integration);

    /**
     * 根据账号修改头像
     * @param username 账号
     * @param headPic 头像
     * @return 响应前端
     */
    ComResult updateHeadPic(String username, String headPic);

    /**
     * 根据账号查询账号信息
     * @param username 账号
     * @return 响应前端
     */
    ComResult getuserinfo(String username);

    /**
     * 账户支付
     * @param username 账户id
     * @param money 账户
     * @return
     */
    int updateUserMoney(String username, Double money);

    /**
     * 校验密码是否为原密码
     * @param username 账号
     * @param password 密码
     * @return 响应前端
     */
    ComResult selectPassword(String username, String password);

    /**
     * 修改密码
     * @param username 账号
     * @param password 密码
     * @return 1
     */
    ComResult updatePassword(String username, String password);

    /**
     * 完善信息
     * @param tbUserVo 完善信息内容
     * @return 1
     */
    ComResult updateUserOver(TbUserVo tbUserVo);



}
